package com.cyf.app.service;

import com.cyf.app.network.bean.*;
import com.cyf.app.network.bean.car.*;
import com.cyf.app.service.bean.IllegalQuery;

import java.io.File;

/**
 * app相关接口
 * Created by cage on 2017/2/15.
 */
public interface AppService {

    /**
     * 发送注册短信
     * @param req
     * @return
     */
    AppRegSmsRsp sendSms(AppRegSmsReq req);

    /**
     * 登录
     * @param req
     * @return
     */
    AppLoginRsp login(AppLoginReq req);

    /**
     * 退出
     * @param req
     * @return
     */
    AppLogoutRsp logout(AppLogoutReq req);

    /**
     * app用户添加车辆
     * @param req
     * @return
     */
    AppAdCarRsp addCar(AppAdCarReq req);

    /**
     * app用户获取车辆
     * @param req
     * @return
     */
    AppGetCarsRsp getCars(AppGetCarsReq req);

    /**
     * app用户获取场内信息
     * @param req
     * @return
     */
    AppGetInParkingRsp getInParking(AppGetInParkingReq req);

    /**
     * app用户获取停车费
     * @param req
     * @return
     */
    AppGetFeeRsp getFee(AppGetFeeReq req);

    /**
     * app用户获取行车记录
     * @param req
     * @return
     */
    AppGetInOutParkingRsp getInOutParking(AppGetInOutParkingReq req);

    /**
     * app用户车辆锁定
     * @param req
     * @return
     */
    AppCarLockOrNoRsp carLockOrNo(AppCarLockOrNoReq req);

    /**
     * app用户问题反馈
     * @param req
     * @return
     */
    AppFeedbackRsp feedback(AppFeedbackReq req);

    /**
     * app用户上传/修改头像s
     * @param req
     * @return
     */
    AppPostPortraitRsp postPortrait(AppPostPortraitReq req);

    /**
     * 获取个人信息
     * @param req
     * @return
     */
    @Deprecated
    AppGetInfoRsp getInfo(AppBusinessReq req);

    /**
     * 获取个人信息
     * @param req
     * @return
     */
    AppGetUserInfoRsp getUserInfo(AppBusinessReq req);

    /**
     * 违章查询
     * @param req
     * @return
     */
    IllegalQuery illegalQuery(AppIllegalQueryReq req);

    /**
     * 车辆认证
     * @param req
     * @return
     */
    AppCarAuthRsp carAuth(AppCarAuthReq req);

    /**
     * 获取各个链接
     * @return
     */
    AppGetImageUrlsRsp getUrls();

    /**
     * 检查是否需要升级
     * @param req app版本号
     * @return AppCheckForUpdateRsp
     */
    AppCheckForUpdateRsp checkForUpdate(AppCheckForUpdateReq req);

    /**
     * 上传车辆认证图片
     * @param req AppUploadAuthPicReq
     * @return AppUploadAuthPicRsp
     */
    AppUploadAuthPicRsp uploadAuthPic(AppUploadAuthPicReq req);

    /**
     * 获取app违章查询表单界面
     * @param req AppIllegalQueryFormReq
     * @return AppIllegalQueryFormRsp
     */
    AppIllegalQueryFormRsp getIllegalQueryForm(AppIllegalQueryFormReq req);

    /**
     * 获取优惠券
     * @param req
     * @return
     */
    AppGetCouponRsp getCoupon(AppGetCouponReq req);

    /**
     * ios上传app版本
     * @param req
     * @return
     */
    AppUploadVersionForIosRsp uploadVersionForIos(AppUploadVersionForIosReq req);

    /**
     * 修改车辆信息
     * @param req
     * @return
     */
    AppEditCarRsp editCar(AppEditCarReq req);

    /**
     * 删除车辆
     * @param req
     * @return
     */
    AppDeleteCarRsp deleteCar(AppDeleteCarReq req);

    /**
     * 获取头像
     * @param req
     * @return
     */
    File getPortrait(AppGetPortraitReq req);

    /**
     * 获取首页下方广告
     * @param req
     * @return
     */
    AppGetAdRsp getAd(AppGetAdReq req);

    /**
     * 获取各个链接和md5,例如：首页轮播图
     * @param req
     * @return
     */
    AppGetImgUrlsAndMd5Rsp getUrlsAndMd5(AppGetImgUrlsAndMd5Req req);
}
